#ifndef ICONSTORE_H
#define ICONSTORE_H

#include <QIcon>

template <typename first, class second> struct QPair;


class IconStore
{
public:
    enum IconType
    {
        ArrowRight,
        DialogCritical,
        DialogHint,
        DialogInformation,
        DialogWarning,
        DocumentEdit,
        DocumentExport,
        DocumentImport,
        ListAdd,
        ListRemove,
        PreferencesSystem,
        ServerDatabase,
        StatusOk,
        StatusRejected,
        StatusRunning,
        SystemRun
    };

    static QIcon icon (const IconType iconType, const int size);
    static QPixmap pixmap (const IconStore::IconType iconType, const int size);
    static QString iconFileName (const IconStore::IconType iconType, const int size);

private:
    static QHash<QPair<IconType,int>,QIcon> iconStorage;
    static QHash<IconType,QString> iconFileNameStorage;

    static void populateIconFileNameStorage();
};


#endif // ICONSTORE_H
